package com.qingcloud.adminbackend.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.qingcloud.adminbackend.entity.config.SysDictionaryConfig;
import com.qingcloud.adminbackend.entity.user.UserRoleBo;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author liuziyong
 * @since 2019-04-12
 */
public interface ISysDictionaryConfigService extends IService<SysDictionaryConfig> {

    /**
     * 通过type获取数据字典配置
     */
    List<SysDictionaryConfig> findByType(Integer type);

    /**
     * 通过type获取数据字典配置
     */
    List<UserRoleBo> findRoleByUser(String userId);

    /**
     * 通过类型和code查询字典信息
     *
     * @param type 类型
     * @param code code
     * @return 字典信息
     */
    SysDictionaryConfig getDictByTypeAndCode(Integer type, String code);

    /**
     * 通过类型查询字典keyMap key为code,value为SysDictionaryConfig
     *
     * @param type 类型
     * @return 字典信息
     */
    Map<String, SysDictionaryConfig> getDictMapByType(Integer type);

    /**
     * 通过字典类型 和code字符串集合得到对应的翻译
     *
     * @param type    类型
     * @param codeStr code字符串集合
     * @return code字符串集合得到对应的翻译
     */
    String getDictStr(Integer type, String codeStr);

    /**
     * 查询子配置
     *
     * @param parent 父节点编码
     */
    List<SysDictionaryConfig> findChildren(Integer parent);

}
